// 文章的处理模块
// 导入数据库操作模块
const { compare } = require('bcryptjs');
const e = require('express');
const db = require('../db/index')

// 发布新文章的处理函数
exports.addArticle = (req, res) => {
    // 手动判断是否上传了文章封面

  // 导入处理路径的 path 核心模块
    const path = require('path')

    const articleInfo = {
    ...req.body,
    // 文章发布时间
    data_time: new Date(),
    // 文章作者的Id
    user_id: req.user.user_id,
    nickname:req.user.nickname,
    head_img:req.user.head_img
    }
    // console.log(articleInfo);
    // 定义发布文章的 SQL 语句：
    const sql = `insert into article set ?`
    
    // 执行 SQL 语句
    db.query(sql, articleInfo, (err, results) => {
        // 执行 SQL 语句失败
        if (err) return res.cc(err)
    
        // 执行 SQL 语句成功，但是影响行数不等于 1
        if (results.affectedRows !== 1) return res.cc('发布文章失败！')
    
        // 发布文章成功
        res.cc('发布文章成功', 0)
    })
}

// 获取所有数据
exports.detailsArticle = (req, res) => {
    // 定义 SQL 语句
    const sql = 'select * from article'
    // pageSize	是	10	页码容量
    // pageNum	是	1	页数
    // 执行SQL 语句
    db.query(sql, (err,results) => {
        // 执行SQL语句失败
        if(err) {
            return res.cc(err)
        }
        // console.log(results);
        let arr2 = results.reverse();
        let arr = arr2.slice((req.body.pageNum - 1) * req.body.pageSize, req.body.pageNum * req.body.pageSize)
        // 有的话返回存在的数据
        res.send({
            status:0,
            message: '获取成功！',
            data:arr
        })
    })
}





// 发表的文章进行删操作（管理员使用  可以删除所有数据）
exports.deletedetails = (req, res) => {
    
        const sql = `delete from article where acticle_id=?`
    
        db.query(sql, req.body.acticle_id, (err, results) => {
            // 执行 SQL 语句失败
            if (err) return res.cc(err)
          
            // SQL 语句执行成功，但是影响行数不等于 1
            if (results.affectedRows !== 1) return res.cc(' 删除文章失败！')
          
            // 删除文章成功
            res.cc(' 删除文章成功！', 0)
          })
}

//本人发表的文章进行删操作
exports.deleteUserdetails = (req, res) => {
    
    const sql = `delete from article where (acticle_id=? and user_id=?)`

    db.query(sql, [req.body.acticle_id,req.user.user_id], (err, results) => {
        // 执行 SQL 语句失败
        if (err) return res.cc(err)
      
        // SQL 语句执行成功，但是影响行数不等于 1
        if (results.affectedRows !== 1) return res.cc(' 删除文章失败！')
      
        // 删除文章成功
        res.cc(' 删除文章成功！', 0)
      })
}

// 查看本用户发布的信息
exports.userdetailsArticle = (req, res) => {
    // console.log(req.user);
    // 定义 SQL 语句
    const sql = 'select * from article where user_id=?'
    // 执行SQL 语句
    db.query(sql, req.user.user_id, (err,results) => {
        // 执行SQL语句失败
        if(err) {
            return res.cc(err)
        }
        let arr2 = results.reverse();
        let arr = arr2.slice((req.body.pageNum - 1) * req.body.pageSize, req.body.pageNum * req.body.pageSize)
        // 有的话返回存在的数据
        res.send({
            status:0,
            message: '获取成功！',
            data:arr
        })
    })
}


// 阅读量自动递增
exports.readArticle = (req, res) => {
    // 定义一个空的阅读量
    let resultsRead = null;
    // 定义 SQL 语句
    const sql = 'select * from article where acticle_id=?'
    // 执行SQL 语句
    db.query(sql, req.params.acticle_id, (err,results) => {
        // 执行SQL语句失败
        if(err) {
            return res.cc(err)
        }
        // 判断是否有这个文章
        if(results.length === 0) {
            return res.cc('没有这个文章！')
        }
        // 获取到对应的阅读数据
        resultsRead = results[0].state + 1 
        // 定义 SQL 语句
        const sqlStr = 'update article set state=? where acticle_id=?'
        // console.log(resultsRead);
        db.query(sqlStr, [resultsRead,req.params.acticle_id], (errStr,resultsStr) => {
            // 执行SQL语句失败
            if(errStr) {
                return res.cc(errStr)
            }
             // SQL 语句执行成功，但是影响行数不等于 1
            if(resultsStr.affectedRows !== 1) {
                return res.cc('阅读量递增失败！')
            }
            // 成功的回调
            res.send({
                status:0,
                message:'阅读量递增成功！'
            })
        })
    })
}


//查看别人信息
exports.userinfoOtherOther = (req, res) => {
    // console.log(req.user);
    // 定义 SQL 语句
    const sql = 'select * from user where user_id=?'
    // 执行SQL 语句
    db.query(sql, req.body.user_id, (err,results) => {
        // 执行SQL语句失败
        if(err) {
            return res.cc(err)
        }
        // 有的话返回存在的数据
        res.send({
            status:0,
            message: '获取成功！',
            data:results
        })
    })
}


// 查看别人发表的文章
exports.userOtherdetailsArticle = (req, res) => {
    // 定义 SQL 语句
    const sql = 'select * from article where user_id=?'
    // pageSize	是	10	页码容量
    // pageNum	是	1	页数
    // 执行SQL 语句
    db.query(sql,req.body.user_id ,(err,results) => {
        // 执行SQL语句失败
        if(err) {
            return res.cc(err)
        }
        // console.log(results);
        let arr2 = results.reverse();
        let arr = arr2.slice((req.body.pageNum - 1) * req.body.pageSize, req.body.pageNum * req.body.pageSize)
        // 有的话返回存在的数据
        res.send({
            status:0,
            message: '获取成功！',
            data:arr
        })
    })
}